package com.example.airole.business.service;

import com.example.airole.business.entity.Conversation;
import com.example.airole.common.entity.ConversationMessage;
import com.example.airole.llm.entity.ChatResponse;
import com.example.airole.speech.entity.SpeechRecognitionResponse;
import com.example.airole.tts.entity.TTSResponse;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 对话服务接口（不需要用户登录）
 */
public interface ConversationService {
    
    /**
     * 创建新对话
     */
    Conversation createConversation(String sessionId, String roleId, String title);
    
    /**
     * 获取会话的对话列表
     */
    List<Conversation> getSessionConversations(String sessionId);
    
    /**
     * 获取对话详情
     */
    Conversation getConversation(String conversationId, String sessionId);
    
    /**
     * 更新对话标题
     */
    boolean updateConversationTitle(String conversationId, String title, String sessionId);
    
    /**
     * 删除对话
     */
    boolean deleteConversation(String conversationId, String sessionId);
    
    /**
     * 归档对话
     */
    boolean archiveConversation(String conversationId, String sessionId);
    
    /**
     * 发送文本消息
     */
    ChatResponse sendTextMessage(String conversationId, String content, String sessionId, String roleId);
    
    /**
     * 发送语音消息
     */
    ChatResponse sendAudioMessage(String conversationId, MultipartFile audioFile, String sessionId, String roleId);
    
    /**
     * 获取对话消息列表
     */
    List<ConversationMessage> getConversationMessages(String conversationId, String sessionId, int page, int size);
    
    /**
     * 语音转文字
     */
    SpeechRecognitionResponse speechToText(MultipartFile audioFile);
    
    /**
     * 文字转语音
     */
    TTSResponse textToSpeech(String text);
}
